{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "1. 这个是介绍numpy如何对高纬度矩阵求和，求均值\n",
    "2. 模拟的场景就是一年有12各月的一个nc维度数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from tqdm import tqdm"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [
    {
     "data": {
      "text/plain": "(12, 360, 720)"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rawdata = np.random.randint(low=0, high=300, size=(12, 360, 720)).astype('float64')\n",
    "rawdata.shape"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [
    {
     "data": {
      "text/plain": "(360, 720)"
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(rawdata, axis=0).shape"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [],
   "source": [
    "rawdata[0, 0, 0] = np.nan"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[[ nan, 158., 261., ...,  69., 286., 113.],\n        [ 62., 147., 125., ..., 261., 165., 208.],\n        [287.,  68., 146., ..., 160.,  90., 179.],\n        ...,\n        [292.,  49.,  72., ..., 248.,  88., 249.],\n        [204.,   2., 210., ...,  36.,  91., 101.],\n        [221., 120., 229., ...,  81., 113.,  90.]],\n\n       [[ 31., 120., 217., ..., 280.,  65.,  60.],\n        [114., 292., 140., ..., 249., 246., 255.],\n        [ 58.,  17., 171., ..., 285.,  60.,   2.],\n        ...,\n        [188.,  66.,  25., ..., 134., 290.,  87.],\n        [ 64., 243., 234., ..., 292., 117., 190.],\n        [258., 299.,  73., ...,  71., 237., 135.]],\n\n       [[ 76., 223., 274., ..., 130., 219., 293.],\n        [ 23., 221., 221., ..., 109.,  11.,  35.],\n        [112., 237.,  67., ..., 138., 297., 288.],\n        ...,\n        [287.,  10., 121., ..., 216., 149., 155.],\n        [ 46.,  17., 117., ..., 223., 225.,  84.],\n        [ 25., 161., 286., ..., 138., 238., 228.]],\n\n       ...,\n\n       [[166., 272., 243., ..., 137., 249., 161.],\n        [ 79., 201., 240., ..., 121., 237.,  74.],\n        [293., 152.,  62., ..., 143., 114.,  92.],\n        ...,\n        [ 83.,  88., 215., ..., 197., 190.,  72.],\n        [223., 278., 278., ...,  19., 112.,  46.],\n        [129.,  99., 121., ..., 230., 282.,  89.]],\n\n       [[223.,  35., 203., ..., 266.,  51., 173.],\n        [202., 205.,  40., ..., 187., 128., 141.],\n        [203., 190.,  39., ..., 264.,  94.,   5.],\n        ...,\n        [120., 235., 173., ..., 172., 260., 118.],\n        [262., 180., 291., ..., 232., 124., 248.],\n        [216., 270., 110., ..., 297., 161.,   8.]],\n\n       [[185.,  93., 193., ...,  76.,  58., 198.],\n        [  0., 257., 287., ..., 157.,  53., 117.],\n        [204., 147., 115., ..., 119., 254., 213.],\n        ...,\n        [131., 180., 120., ..., 224., 252., 283.],\n        [157., 182., 212., ..., 188., 218.,  49.],\n        [203., 102.,  27., ..., 156.,  85., 202.]]])"
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rawdata"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[         nan, 148.91666667, 209.25      , ..., 133.        ,\n        144.83333333, 165.5       ],\n       [ 90.16666667, 184.33333333, 169.83333333, ..., 158.66666667,\n        116.25      , 146.5       ],\n       [167.91666667, 135.41666667, 121.41666667, ..., 167.25      ,\n        177.        , 168.        ],\n       ...,\n       [164.41666667, 121.5       , 145.58333333, ..., 195.33333333,\n        149.41666667, 163.41666667],\n       [160.33333333, 136.33333333, 185.08333333, ..., 157.08333333,\n        153.16666667, 111.        ],\n       [204.25      , 160.91666667, 126.5       , ..., 179.75      ,\n        175.41666667, 153.08333333]])"
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(rawdata, axis=0)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[112.09090909, 148.91666667, 209.25      , ..., 133.        ,\n        144.83333333, 165.5       ],\n       [ 90.16666667, 184.33333333, 169.83333333, ..., 158.66666667,\n        116.25      , 146.5       ],\n       [167.91666667, 135.41666667, 121.41666667, ..., 167.25      ,\n        177.        , 168.        ],\n       ...,\n       [164.41666667, 121.5       , 145.58333333, ..., 195.33333333,\n        149.41666667, 163.41666667],\n       [160.33333333, 136.33333333, 185.08333333, ..., 157.08333333,\n        153.16666667, 111.        ],\n       [204.25      , 160.91666667, 126.5       , ..., 179.75      ,\n        175.41666667, 153.08333333]])"
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.nanmean(rawdata, axis=0)\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}